/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        int opcion = 0;


        boolean validarSeccion = false;


        boolean validarProfesor = false;


        boolean validarInscritos = false;


        boolean validarPruebas = false;



        boolean continuar = true;
        BufferedReader tecla = new BufferedReader(new InputStreamReader(System.in));
        Seccion seccion = null;
        Profesor profesor;


        do {
            System.out.println("===========================================================");
            System.out.println("================== Menu de Opciones   =====================");
            System.out.println("    1-  Crear Seccion                 (puede hacerse 1 vez)");
            System.out.println("    2-  Asignar Profesor a la seccion (puede hacerse 1 vez)");
            System.out.println("    3-  Inscribir Estudiante                               ");
            System.out.println("    4-  Retirar Estudiante                                 ");
            System.out.println("    5-  Buscar Estudiante                                  ");
            System.out.println("    6-  Aplicar Evaluaciones          (puede hacerse 1 vez)");
            System.out.println("    7-  Listar Estudiantes ordenado por Cedula             ");
            System.out.println("    8-  Listar Estudiantes ordenado por Nota Final         ");
            System.out.println("    9-  Listar Estudiantes Aprobados                       ");
            System.out.println("    10- Listar Estudiantes Aplazados                       ");
            System.out.println("    11- Promedio                                           ");
            System.out.println("    12- Salir                                              ");
            System.out.println("===========================================================");
            System.out.println("================== Presione un numero segun la opcion======");



            while (continuar) {
                try {
                    opcion = Integer.parseInt(tecla.readLine());


                    break;


                } catch (NumberFormatException e) {
                    System.out.println("Error, Selecione un numero en el rango por favor");


                }
            }



            switch (opcion) {
                case 1: {
                    if (validarSeccion == false) {
                        String numeroSeccion = "";
                        validarSeccion = true;
                        System.out.println("Ingrese el numero de la Seccion:");


                        while (continuar) {
                            try {
                                numeroSeccion = tecla.readLine();


                                break;


                            } catch (NumberFormatException e) {
                                System.out.println("Error, numero invalido, intente de nuevo");


                            }
                        }
                        seccion = new Seccion(numeroSeccion);


                    } else {
                        System.out.println("Seccion creada, pase al siguiente paso");
                    }
                    tecla.readLine();


                }
                break;


                case 2: {
                    if (validarProfesor == false) {
                        String nombre, apellido, titulo, cedula;
                        System.out.println("Ingrese los siguientes datos para el profesor: ");
                        System.out.println("===============================================");

                        System.out.println("Nombre: ");
                        nombre = tecla.readLine();
                        System.out.println("Apellido");
                        apellido = tecla.readLine();
                        System.out.println("cedula: ");
                        cedula = tecla.readLine();
                        System.out.println("Titulo Academico:");
                        titulo = tecla.readLine();
                        validarProfesor =
                                true;
                        profesor = new Profesor(nombre, apellido, cedula, titulo);
                        seccion.AsignarProfesor(profesor);


                    } else {
                        System.out.println("Profesor asignado, pase al siguiente paso");
                    }
                    tecla.readLine();


                }
                break;


                case 3: {
                    if (validarSeccion == true) {
                        validarInscritos = true;
                        String nombre, apellido, cedula;
                        String resp = "s";


                        while (resp.toLowerCase().equals("s")) {
                            System.out.println("Ingrese los siguientes datos para el Estudiante: ");
                            System.out.println("================================================ ");
                            System.out.println("cedula: ");
                            cedula = tecla.readLine();
                            System.out.println("nombre: ");
                            nombre = tecla.readLine();
                            System.out.println("apellido: ");
                            apellido = tecla.readLine();
                            Estudiante estudiante = new Estudiante(nombre, apellido, cedula);
                            seccion.InscribirEstrudiante(estudiante);
                            System.out.println("Desea incribir otro Estudiante s o n");
                            resp =
                                    tecla.readLine();


                        }
                    } else {
                        System.out.println("Error, debe crear seccion y asignar profesor.");
                        tecla.readLine();

                    }
                }
                break;


                case 4: {
                    if (validarInscritos == true) {
                        String cedula;
                        System.out.println("cedula del Estudiante q desea retirar: ");
                        cedula = tecla.readLine();
                        seccion.RetirarEstudiante(cedula);


                    } else {
                        System.out.println("No existen estudiantes inscritos o cedula no existe");
                    }
                    tecla.readLine();


                }
                break;


                case 5: {
                    if (validarInscritos) {
                        String cedula;
                        System.out.println("cedula del Estudiante q desea buscar: ");
                        cedula = tecla.readLine();
                        seccion.BuscarEstudiante(cedula);


                    } else {
                        System.out.println("No existen estudiantes inscritos o cedula no existe");
                    }
                    tecla.readLine();


                }
                break;


                case 6: {
                    if (validarInscritos) {
                        if (validarPruebas == false) {
                            validarPruebas = true;
                            seccion.AplicarEvaluaciones();


                        } else {
                            System.out.println("Las evaluaciones ya fueron aplicadas, seguir al siguiente paso");
                        }
                    } else {
                        System.out.println("No hay estudiantes inscritos, verifique si se salto pasos anteriores");
                    }
                    tecla.readLine();


                }
                break;


                case 7: {
                    if (validarInscritos) {
                        seccion.ListarEstudiantesCedula();
                    } else {
                        System.out.println("No hay estudiantes inscritos, verifique si se salto pasos anteriores");
                    }
                    tecla.readLine();


                }
                break;


                case 8: {
                    if (validarPruebas) {
                        seccion.ListarEstudiantesNota();
                    } else {
                        System.out.println("Debe aplicar las evaluaciones para emitir un listdo, por favor verifique");
                    }
                    tecla.readLine();


                }
                break;


                case 9: {
                    if (validarPruebas) {
                        seccion.ListarAprobados();
                    } else {
                        System.out.println("Debe aplicar las evaluaciones para emitir un listdo, por favor verifique");
                    }
                    tecla.readLine();


                }
                break;


                case 10: {
                    if (validarPruebas) {
                        seccion.ListarReprobados();
                    } else {
                        System.out.println("Debe aplicar las evaluaciones para emitir un listdo, por favor verifique");
                    }
                    tecla.readLine();


                }
                break;


                case 11: {
                    if (validarPruebas) {
                        seccion.ListaPromedio();
                    } else {
                        System.out.println("Debe aplicar las evaluaciones para emitir un listdo, por favor verifique");
                    }
                    tecla.readLine();


                }
                break;


            }
        } while (opcion != 12);



    }
}

    

